package com.ruoyi.mes.service;

import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.mes.domain.TaskCart;
import com.ruoyi.mes.vo.wksp.RptVo;

/**
 * 车间任务卡Service接口
 *
 * @author LongAndHao
 * @date 2023-04-04
 */
public interface ITaskCartService
{
    /**
     * 查询车间任务卡
     *
     * @param taskCardId 车间任务卡主键
     * @return 车间任务卡
     */
    public TaskCart selectTaskCartByTaskCardId(Long taskCardId);

    /**
     * 查询车间任务卡列表
     *
     * @param taskCart 车间任务卡
     * @return 车间任务卡集合
     */
    public List<TaskCart> selectTaskCartList(TaskCart taskCart);

    /**
     * 新增车间任务卡
     *
     * @param taskCart 车间任务卡
     * @return 结果
     */
    public int insertTaskCart(TaskCart taskCart);

    /**
     * 修改车间任务卡
     *
     * @param taskCart 车间任务卡
     * @return 结果
     */
    public int updateTaskCart(TaskCart taskCart);

    /**
     * 批量删除车间任务卡
     *
     * @param taskCardIds 需要删除的车间任务卡主键集合
     * @return 结果
     */
    public int deleteTaskCartByTaskCardIds(Long[] taskCardIds);

    /**
     * 删除车间任务卡信息
     *
     * @param taskCardId 车间任务卡主键
     * @return 结果
     */
    public int deleteTaskCartByTaskCardId(Long taskCardId);


    /**
     * 查 - 任务卡详情
     * @param id 任务卡id
     * @return
     */
    AjaxResult getDetail(Long id);


    /**
     * 查 - 已排序的工序
     * @param id 任务卡id
     * @return
     */
    AjaxResult sorted(Long id);


    /**
     * 报工
     * @param rptVo
     * @return
     */
    AjaxResult report(RptVo rptVo);

    /**
     * 查 - 任务卡分页 - 任务卡编码不重复
     * @param taskCart
     * @return
     */
    List<TaskCart> taskCardList(TaskCart taskCart);

    /**
     * 查 - 可报工数量
     * @param id 任务卡id
     * @param proceSeque 报工顺序
     * @return
     */
    AjaxResult getTransferredQuantity(Long id, Long proceSeque);
}
